#pragma once

namespace sf
{
    class PostFX;
};

class DIRenderer;

namespace Postprocesses {

class DIPostprocess
{
    friend class DPostprocessManager;
public:
    virtual ~DIPostprocess(void);

    virtual void update(float dt) = 0;

    bool isActive() const;
    void activate();
    void deactivate();
protected:
    DIPostprocess(void);
	void render(boost::shared_ptr<DIRenderer> renderer);
    boost::weak_ptr<sf::PostFX> m_effect;

    bool m_bActive;
};

} // namespace Postprocesses {